package org.example.cake.service;

import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;
import org.example.cake.entity.Discuss;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface DiscussService{


    int deleteByPrimaryKey(Integer discussid);

    int insert(Discuss record);

    int insertSelective(Discuss record);

    Discuss selectByPrimaryKey(Integer discussid);

    int updateByPrimaryKeySelective(Discuss record);

    int updateByPrimaryKey(Discuss record);

    /**
     * 前端方法：根据蛋糕id查询有关评论
     * @param cakeid 蛋糕id
     * @author 李丽君
     * @Date 2025-07-25
     * @return 评论实体
     */
    public List<Discuss> selectByCakeId(Integer cakeid);

    /**
     * 小程序方法  新增评论
     * @param discuss 评论对象
     * @return  受影响的行数
     */
    public int insertDiscuss(Discuss discuss);


    /**
     * 查询所有评论及关联信息（分页）
     * @author luojiangjin
     * @param page 当前页码
     * @param pageSize 每页条数
     * @return 分页结果
     */
    PageInfo<Discuss> getAllDiscussWithDetails(Integer page, Integer pageSize);

    /**
     * 分页查询评论列表（多表联查+模糊查询）
     * @author luojiangjin
     * @param page 当前页码
     * @param pageSize 每页条数
     * @param keyword 搜索关键词
     * @return 分页结果
     */
    PageInfo<Discuss> getDiscussList(Integer page, Integer pageSize, String keyword);

    /**
     * 根据评论ID删除评论
     * @param discussId 评论ID
     * @return 删除是否成功
     * @throws Exception 可能抛出的异常
     */
    boolean deleteDiscuss(Integer discussId) throws Exception;

    /**
     * 根据评论ID查询评论图片
     * @author luojiangjin
     * @param discussId 评论ID
     * @return 图片URL列表
     */
    List<String> getDiscussImages(Integer discussId);
    /**
     * 根据订单id查询是否有评论
     * @param orderid 订单id
     * @return 订单集合
     */
    boolean selectByOrderId(@Param("orderid") Integer orderid);
}
